package com.chaopei.msite_web.controller;

import com.chaopei.msite_web.entity.OrderProductVo;
import com.chaopei.msite_web.service.OrderService;
import com.chaopei.msite_web.utils.MyTools;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * @Author Corday 天涯
 * @Date 2022/5/12 0:22
 * 订单管理
 */
@Controller
@RequestMapping("/order")
public class OrderController {
    //    注入订单管理对象
    @Resource
    private OrderService orderService;

    /**
     * 从前端能直接获取到表格中的实体,并自动生List集合对象吗
     *
     * @param jsonArray
     * @return http://localhost:8080/order/goPay?jsonArray=你好
     */
    @RequestMapping("/goPay")
    public String goPay(String jsonArray, HttpSession session) {
        //传给order-mng,这里是RPC传输;可以用ActiveMQ消息队列来完成,
        //因为数据可以缓加载,这样效率更高,实现限流作用
        String msg = orderService.getVo(jsonArray);
        if ("error".equals(msg)) {
            session.setAttribute("msg", "order网络阻塞,稍候...");
            //跳转到提示页
            return "pages/error";
        }
        //跳转到支付页
        return "pages/my-pay";
    }

    /**
     * @param uid
     * @return
     * @传订单数据oids/ovs
     */
    @RequestMapping("/goDingdan")
    public String goOrder(int uid, HttpSession session) {
        //拿到其它服务的json字符串数据
        String json = orderService.getOidsAndVos(uid);
        Map<Integer, List<OrderProductVo>> ovos = new LinkedHashMap<>();
        //生成map对象
        ovos = MyTools.jsonToMap(json);
        //System.out.println("拿到map:" + ovos);
        //传值到前端渲染
        session.setAttribute("ovos", ovos);
        return "pages/my-dingdan";
    }
}
